//服务器全部接口返回的数据类型
export interface ResponseData {
  code: number,
  message: string,
  ok: boolean
}

//spu数据的ts类型
export interface SpuData {
  id?: number,
  spuName: string,
  description: string,
  category3Id: string | number,
  tmId: number | string,
  spuSaleAttrList: null | SaleAttr[],
  spuImageList: null | SpuImg[]
}

//数组：原色都是已有spu数据类型
export type Records = SpuData[]

//定义获取已有的spu接口返回的数据ts类型
export interface SpuResponseData extends ResponseData {
  data: {
    records: Records,
    current: number,
    pages: number,
    searchCount: boolean,
    size: number,
    total: number
  }
}

//品牌数据的TS类型
export interface Trademark {
  id: number,
  tmName: string,
  logoUrl: string
}
//品牌接口返回的数据ts类型
export interface AllTradeMark extends ResponseData {
  data: Trademark[]
}

//商品图片的ts类型
export interface SpuImg {
  id?: number,
  imgName?: string,
  imgUrl?: string
  createTime?: string,
  updateTime?: string,
  spuId?: number,
  name?: string,
  url?: string
}
//已有的SPU的照片墙数据的类型
export interface SpuHasImg extends ResponseData {
  data: SpuImg[]
}


//已有的销售属性值对象ts类型
export interface SaleAttrValue {
  "id"?: number,
  "createTime"?: null,
  "updateTime"?: null,
  "spuId"?: number,
  "baseSaleAttrId": number | string,
  "saleAttrValueName": string,
  "saleAttrName"?: string,
  "isChecked"?: null
}
//存储已有的销售属性值数组类型
export type SpuSaleAttrValueList = SaleAttrValue[];

//销售属性对象ts类型
export interface SaleAttr {
  "id"?: number,
  "createTime"?: null,
  "updateTime"?: null,
  "spuId"?: number,
  "baseSaleAttrId": number | string,
  "saleAttrName": string,
  "spuSaleAttrValueList": SpuSaleAttrValueList
  flag?: boolean,
  saleAttrValue?: string,
}
//SPU已有的销售属性接口返回数据ts类型
export interface SaleAttrResponseData extends ResponseData {
  data: SaleAttr[]
}

//已有的全部SPU的返回数据ts类型
export interface HasSaleAttr {
  id: number,
  name: string
}

export interface HasSaleAttrResponseData extends ResponseData {
  data: HasSaleAttr[]
}

export interface Attr {
  "attrId": number | string,//平台属性的ID
  "valueId": number | string,//属性值的ID
}
export interface saleArr {
  "saleAttrId": number | string,//属性ID
  "saleAttrValueId": number | string,//属性值的ID
}
export interface SkuData {
  "category3Id": string | number,//三级分类的ID
  "spuId": string | number,//已有的SPU的ID
  "tmId": string | number,//SPU品牌的ID
  "skuName": string,//sku名字
  "price": string | number,//sku价格
  "weight": string | number,//sku重量
  "skuDesc": string,//sku的描述
  "skuAttrValueList"?: Attr[],
  "skuSaleAttrValueList"?: saleArr[]
  "skuDefaultImg": string,//sku图片地址
}

//获取SKU数据接口的ts类型
export interface SkuInfoData extends ResponseData {
  data: SkuData[]
} 